/*
 * @Description: 
 * @Author: 亢超
 * @Date: 2024-11-18 18:06:09
 * @LastEditTime: 2024-11-21 23:05:12
 */
import axios from 'axios'
import store from '@/store';
import { Message } from 'element-ui';

// axios.create 作用创建axios实例
const service = axios.create({
  // baseURL: process.env.VUE_APP_BASE_API, // 请求接口基地址
  baseURL: '/api', // 请求接口基地址
  // baseURL: 'https://paidao.gzy88.cn/public/index.php/v1', // 请求接口基地址
  timeout: 600000 // 超时时间
})

// 请求拦截器
service.interceptors.request.use(function(config) {
  if (store.state.token) {
    config.headers['accessToken'] = `${store.state.token}`
    config.headers['content-type'] = config.headers['Content-Type'] ? config.headers['Content-Type'] : 'application/json'
    config.headers['mobilephone'] = `${store.state.userInfo.mobilephone}`
  }

  return config;
}, function(error) {
  return Promise.reject(error);
});

// 响应拦截器
service.interceptors.response.use(function(response) {
  //http 2xx执行下面代码
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response.data
}, function(error) {
  const msg = error.response?.data.message || '请求失败'

  // if (msg == "非法token，请先登录！") {
  if (error.response.data.code == 401) {
    store.dispatch("logout").finally(() => location.reload())
  }

  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  //对错误统一处理  
  Message.error(msg)



  return Promise.reject(error);
});

export default service
